//package com.sdhs.file.utils;
//
//import com.itextpdf.text.Element;
//import com.itextpdf.text.Rectangle;
//import com.itextpdf.text.pdf.*;
//
//import javax.servlet.ServletOutputStream;
//import javax.swing.*;
//import java.awt.*;
//import java.io.InputStream;
//
///**
// * @Description: PDF增加水印工具类
// */
//public class PDFAddWatermarkUtil {
//
//    /**
//     * 给PDF添加水印
//     * @param fileStream 文件流
//     * @param waterMarkName 添加水印的内容
//     */
//    public static void PDFAddWatermark(InputStream fileStream, ServletOutputStream outputFile , String waterMarkName) {
//        try {
//            // 水印的高和宽（参数可调节）
//            int textH = 75;
//            int textW = 170;
//            // 间隔距离（参数可调节）
//            int interval = 30;
//            PdfReader reader = new PdfReader(fileStream);
//            PdfStamper stamper = new PdfStamper(reader, outputFile);
//            BaseFont base = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.EMBEDDED);
//            PdfGState gs = new PdfGState();
//            gs.setFillOpacity(0.2f);//改透明度
//            gs.setStrokeOpacity(0.4f);
//            int total = reader.getNumberOfPages() + 1;
//            JLabel label = new JLabel();
//            label.setText(waterMarkName);
//            PdfContentByte under;
//
//            // 可添加多个水印
//            Rectangle pageRect = null;
//            FontMetrics metrics;
//            label.setText(waterMarkName);
//            metrics = label.getFontMetrics(label.getFont());
//            for (int i = 1; i < total; i++) {
//                pageRect = reader.getPageSizeWithRotation(i);
//                // 在内容上方加水印
//                under = stamper.getOverContent(i);
//                // 在内容下方加水印
//                //under = stamper.getUnderContent(i);
//                under.saveState();
//                under.setGState(gs);
//                under.beginText();
//                under.setFontAndSize(base, 20);
//                // 水印文字成30度角倾斜
//                for (int height = interval + textH; height < pageRect.getHeight();
//                     height = height + textH * 3) {
//                    for (int width = interval + textW; width < pageRect.getWidth() + textW;
//                         width = width + textW * 2) {
//                        under.showTextAligned(Element.ALIGN_LEFT
//                            , waterMarkName, width - textW,
//                            height - textH, 30);
//                    }
//                }
//                // 添加水印文字
//                under.endText();
//            }
//            stamper.close();
//            reader.close();
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
//
//}
